/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package upeu.cepre.business;

import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import upeu.cepre.model.DetallePeriodoAlumno;
import upeu.cepre.model.DetallePeriodoTrabajador;
import upeu.cepre.model.Trabajador;

import upeu.cepre.util.DataBaseConexion;

/**
 *
 * @author Elvis Zanguetsu
 */
public class DetallePeriodoTrabajadorManager {

    public Connection connection;

    public List<DetallePeriodoTrabajador> Report() {

        List<DetallePeriodoTrabajador> detallePeriodoTrabajadores = new ArrayList<DetallePeriodoTrabajador>();
        try {

            connection = DataBaseConexion.getConexion();
            Statement statement = connection.createStatement();
            ResultSet rs = statement.executeQuery("SELECT * FROM detalleperiodotrabajador ");
            while (rs.next()) {
                DetallePeriodoTrabajador detallePeriodoTrabajador = new DetallePeriodoTrabajador();

                detallePeriodoTrabajador.setIdDetallePeriodoTrabajador(rs.getString("idDetallePeriodoTrabajador"));
                detallePeriodoTrabajador.setIdTrabajador(rs.getString("idTrabajador"));
                detallePeriodoTrabajador.setIdPeriodo(rs.getString("idPeriodo"));
                detallePeriodoTrabajador.setRol(rs.getString("rol"));

                detallePeriodoTrabajadores.add(detallePeriodoTrabajador);
            }

            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return detallePeriodoTrabajadores;
    }

    public DetallePeriodoTrabajador findByIdtrabajadorANDByIdperiodo(String idtrabajador, String periodo) {
        DetallePeriodoTrabajador detallePeriodoTrabajador = new DetallePeriodoTrabajador();
        connection = DataBaseConexion.getConexion();

        try {

            PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM detalleperiodotrabajador WHERE idTrabajador=? AND idPeriodo=? ");
            preparedStatement.setString(1, idtrabajador);
            preparedStatement.setString(2, periodo);
            ResultSet rs = preparedStatement.executeQuery();

            if (rs.next()) {
                detallePeriodoTrabajador.setIdDetallePeriodoTrabajador(rs.getString("idDetallePeriodoTrabajador"));
                detallePeriodoTrabajador.setIdTrabajador(rs.getString("idTrabajador"));
                detallePeriodoTrabajador.setIdPeriodo(rs.getString("idPeriodo"));
                detallePeriodoTrabajador.setRol(rs.getString("rol"));

            }
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return detallePeriodoTrabajador;
    }

    public DetallePeriodoTrabajador finById(String idalumno) {
        
        DetallePeriodoTrabajador detallePeriodoTrabajador = new DetallePeriodoTrabajador();
        
        try {
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement = connection.prepareStatement("select * from detalleperiodotrabajador where idDetallePeriodoTrabajador=?");
            preparedStatement.setString(1, idalumno);
            ResultSet rs = preparedStatement.executeQuery();

            if (rs.next()) {

                detallePeriodoTrabajador.setIdDetallePeriodoTrabajador(rs.getString("idDetallePeriodoTrabajador"));
                detallePeriodoTrabajador.setIdTrabajador(rs.getString("idTrabajador"));
                detallePeriodoTrabajador.setIdPeriodo(rs.getString("idPeriodo"));
                detallePeriodoTrabajador.setRol(rs.getString("rol"));

            }
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return detallePeriodoTrabajador;
    }

    public List<DetallePeriodoTrabajador> findByIdPeriodo(String periodo) {
        List<DetallePeriodoTrabajador> detallePeriodoTrabajadores = new ArrayList<DetallePeriodoTrabajador>();
         
        try {
            connection = DataBaseConexion.getConexion();
            Statement statement = connection.createStatement();
            PreparedStatement prepareestatemente = connection.prepareStatement("SELECT * FROM detalleperiodotrabajador  WHERE idPeriodo=?");
            prepareestatemente.setString(1, periodo);
            ResultSet rs = prepareestatemente.executeQuery();
          
            while (rs.next()) {
                DetallePeriodoTrabajador detallePeriodoTrabajador = new DetallePeriodoTrabajador();

                detallePeriodoTrabajador.setIdDetallePeriodoTrabajador(rs.getString("idDetallePeriodoTrabajador"));
                detallePeriodoTrabajador.setIdTrabajador(rs.getString("idTrabajador"));
                detallePeriodoTrabajador.setIdPeriodo(rs.getString("idPeriodo"));
                detallePeriodoTrabajador.setRol(rs.getString("rol"));

                detallePeriodoTrabajadores.add(detallePeriodoTrabajador);
            }

            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return detallePeriodoTrabajadores;
    }

    
    public String ObtenerId() {

        java.util.Date ahora = new java.util.Date();
        SimpleDateFormat formateador = new SimpleDateFormat("ddMMyyyy");
        DetallePeriodoTrabajadorManager trabManager = new DetallePeriodoTrabajadorManager();
        int a = trabManager.Report().size();
        return formateador.format(ahora) + "DetallePeriodoTrabajador" + (a + 1);

    }

    public void Add(DetallePeriodoTrabajador detallePeriodoTrabajador) {
        try {
            connection = DataBaseConexion.getConexion();
            PreparedStatement preparedStatement =
                    connection.prepareStatement(
                    "INSERT INTO detalleperiodotrabajador ( idDetallePeriodoTrabajador , idTrabajador , idPeriodo , rol )VALUES(?,?,?,?)");

            preparedStatement.setString(1, detallePeriodoTrabajador.getIdDetallePeriodoTrabajador());
            preparedStatement.setString(2, detallePeriodoTrabajador.getIdTrabajador());
            preparedStatement.setString(3, detallePeriodoTrabajador.getIdPeriodo());
            preparedStatement.setString(4, detallePeriodoTrabajador.getRol());
       

            preparedStatement.executeUpdate();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }


    }
}
